import axios from 'axios'
import { Toast } from 'vant';
import qs from 'qs';
// axios.defaults.baseURL = 'http://localhost'
//创建请求拦截器
axios.interceptors.request.use(config =>{
    //预处理一些请求信息
    //一般我们会进行token的设置
    Toast.loading({
        duration: 0,
        forbidClick:true,
        message:"请求中..."
    })
    const token = localStorage.getItem('token')
    token && (config.headers.Authorization = token)
    token && (config.headers.token = token)
    return config
},err => {
    Toast.fail(err)
    return Promise.reject(err)
})

//创建相应的拦截器
axios.interceptors.response.use(response=>{
    //预处理相应数据
    Toast.clear()
    return response.data
},err => {
    Toast.clear()
    const {response} = err
    if(response){
        //服务器返回了结果
        switch(response.status){
            case 401://权限不足，就比如未登录请求接口
            Toast.fail('权限不足')
            break
            case 403://服务器拒绝执行，一般是token或session过期了
            Toast.fail('服务器拒绝执行，一般是token或session过期了')
            break
            case 404://找不到地址
            Toast.fail('找不到地址')
            break
            case 500://服务器不服
            Toast.fail('服务器内部错误，无法完成请求。')
            break
        }
    }else{
        //服务器连接结果都没有返回
        if(!window.navigator.onLine){
            //客户端断网了，将页面跳转到页面一个
        return
        }
    }
    return Promise.reject(err)
})
//api地址

let prefix = `https://f.tm315.top/uni-mall-api`
export default function (url, {
    method = 'get',
    timeout = 2000 * 10,
    headers = {
      'content-type': 'application/json;charset=UTF-8',
      ...headers,
      'Access-Token': localStorage.getItem('token')
      // 'content-type': 'application/x-www-form-urlencoded'
    },
    responseType = 'json',
    
    data = '',
    params = ''
  } = {}) {
    // let passdata = {...data}
    // console.log('url',url,{...data},passdata)
    return axios({
        url: prefix ? `${prefix}${url}` : url,
        method,
        timeout,
        headers,
        data:qs.stringify(data),
        params
      })
  }